Data communication in a computer network involves the exchange of data between two or more entities interconnected by communication links and subnetworks. These entities are typically software programs executing on hardware computer platforms, such as end stations and intermediate stations. Examples of an intermediate station may be a router or switch which interconnects the communication links and subnetworks to enable transmission of data between the end stations. A subnetwork may include a local area network (LAN) that provides relatively short distance communication among the interconnected stations; in contrast, a wide area network (WAN) enables long distance communication over links provided by public or private telecommunications facilities.
Communication software executing on the end stations correlate and manage data communication with other end stations. The stations typically communicate by exchanging discrete packets or frames of data according to predefined protocols. In this context, a protocol consists of a set of rules defining how the stations interact with each other. In addition, network routing software executing on the routers allow expansion of communication to other end stations. Collectively, these hardware and software components comprise a communications network and their interconnections are defined by an underlying architecture.
Modem communications network architectures are typically organized as a series of hardware and software levels or "layers" within each station. These layers interact to format data for transfer between, e.g., a source station and a destination station communicating over the network. Specifically, predetermined services are performed on the data as it passes through each layer and the layers communicate with each other by means of the predefined protocols. The lower layers of these architectures are generally standardized and are typically implemented in hardware and firmware, whereas the higher layers are generally implemented in the form of software running on the stations attached to the network. Examples of such communications architectures include the Systems Network Architecture (SNA) developed by International Business Machines Corporation and the Internet communications architecture.
The Internet architecture is represented by four layers which are termed, in ascending interfacing order, the network interface, internetwork, transport and application layers. These layers are arranged to form a protocol stack in each communicating station of the network. FIG. 1 illustrates a schematic block diagram of prior art Internet protocol stacks 125 and 175 used to transmit data between a source station 110 and a destination station 150, respectively, of a network 100. As can be seen, the stacks 125 and 175 are physically connected through a communications channel 180 at the network interface layers 120 and 160. For ease of description, the protocol stack 125 will be described.
In general, the lower layers of the communications stack provide internetworking services and the upper layers, which are the users of these services, collectively provide common network application services. The application layer 112 provides services suitable for the different types of applications using the network, while the lower network interface layer 120 of the Internet architecture accepts industry standards defining a flexible network architecture oriented to the implementation of LANs.
Specifically, the network interface layer 120 comprises physical and data link sublayers. The physical layer 126 is concerned with the actual transmission of signals across the communication channel and defines the types of cabling, plugs and connectors used in connection with the channel. The data link layer, on the other hand, is responsible for transmission of data from one station to another and may be further divided into two sublayers: Logical Link Control (LLC 122) and Media Access Control (MAC 124). The MAC sublayer 124 is primarily concerned with controlling access to the transmission medium in an orderly manner and, to that end, defines procedures by which the stations must abide in order to share the medium. The LLC sublayer 122 manages communications between devices over a single link of the network and provides for environments that need connectionless or connection-oriented services at the data link layer.
Connection-oriented services at the data link layer generally involve three distinct phases: connection establishment, data transfer and connection termination. During connection establishment, a single path or connection, e.g., an IEEE 802.2 LLC Type 2 or "Data Link Control" (DLC) connection as referred hereinafter, is established between the source and destination stations. Once the connection has been established, data is transferred sequentially over the path and, when the DLC connection is no longer needed, the path is terminated. The details of such connection establishment and termination are well-known.
The transport layer 114 and the internetwork layer 116 are substantially involved in providing predefined sets of services to aid in connecting the source station to the destination station when establishing application-to-application communication sessions. The primary network layer protocol of the Internet architecture is the Internet protocol (IP) contained within the internetwork layer 116. IP is primarily a connectionless network protocol that provides internetwork routing, fragmentation and reassembly of datagrams and that relies on transport protocols for end-to-end reliability. An example of such a transport protocol is the Transmission Control Protocol (TCP) contained within the transport layer 114. Notably, TCP provides connection-oriented services to the upper layer protocols of the Internet architecture. The term TCP/IP is commonly used to refer to the Internet architecture. Protocol stacks and the TCP/IP reference model are well-known and are, for example, described in Computer Networks by Andrew S. Tanenbaum, printed by Prentice Hall PTR, Upper Saddle River, N.J., 1996.
Data transmission over the network 100 therefore consists of generating data in, e.g., sending process 104 executing on the source station 110, passing that data to the application layer 112 and down through the layers of the protocol stack 125, where the data are sequentially formatted as a frame for delivery onto the channel 180 as bits. Those frame bits are then transmitted over an established connection of channel 180 to the protocol stack 175 of the destination station 150 where they are passed up that stack to a receiving process 174. Data flow is schematically illustrated by solid arrows.
Although actual data transmission occurs vertically through the stacks, each layer is programmed as though such transmission were horizontal. That is, each layer in the source station 110 is programmed to transmit data to its corresponding layer in the destination station 150, as schematically shown by dotted arrows. To achieve this effect, each layer of the protocol stack 125 in the source station 110 typically adds information (in the form of a header field) to the data frame generated by the sending process as the frame descends the stack. At the destination station 150, the various encapsulated headers are stripped off one-by-one as the frame propagates up the layers of the stack 175 until it arrives at the receiving process.
SNA is a mainframe-oriented network architecture that also uses a layered approach. The services included within this architecture are generally similar to those defined in the Internet communications architecture. In a SNA network, though, applications executing on end stations typically access the network through logical units (LU) of the stations; accordingly, in a typical SNA network, a communication session connects two LUs in an LU-LU session. Activation and deactivation of such a session is addressed by Advanced Peer to Peer Networking (APPN) functions. These APPN functions generally include session establishment and session routing within an APPN network.
FIG. 2 is a schematic block diagram of a prior art APPN network 200 comprising two end stations 202, 212, which are typically configured as end nodes (EN), coupled to token ring (TR) networks 204, 214, respectively. Intermediate session routing occurs when intermediate stations 206, 216, configured as APPN network nodes (NN), are present in a session between the two end nodes. The APPN network nodes 206, 216 are further interconnected by a WAN 210 that extends the APPN architecture throughout the network. These intermediate nodes forward frames of an LU-LU session over a calculated route between the two APPN end nodes. APPN network and end nodes are well-known and are, for example, described in detail in Systems Network Architecture Advanced Peer to Peer Networking Architecture Reference IBM Doc SC30-3422 and APPN Networks by Jesper Nilausen, printed by John Wiley and Sons, 1994, at pgs 11-99.
Broadly stated, each APPN node includes a control point (CP) that manages and coordinates APPN related functions for the node. An APPN network node is a full-functioning APPN router node having all APPN base service capabilities, including directory services functions. An APPN end node, on the other hand, is capable of performing only a subset of the functions provided by an APPN network node. For functions outside is of its capability, the end node relies on registration in an adjacent APPN network node, which acts as its "network node server".
For example, directory services in each APPN end node maintain database information on local resources (i.e., LUs in the end node) in addition to information on LUs in adjacent nodes with which it may want to establish a session and communicate without involving its network node server. Directory services in a network node maintain a database for local resources (LUs in the network node itself) and for resources within an area of control (i.e., "domain") of the network node. A network nodes's domain includes the network node and all APPN end nodes served by the network node. An end node registers its local resources at its network node server via a CP-CP session with the server. In addition, the network node maintains a database for resources outside the network node's domain. Directory information is exchanged among all network nodes in an APPN environment via CP-CP sessions in those nodes.
During session establishment, an LU within a local end node (such as EN 202) requests an optimum route for a session with a partner LU within a remote end node (such as EN 212). The local EN 202 initially searches its directory database for the location of the partner LU. If the location information is not present in the database, the local EN establishes a CP--CP session with its network node server (such as NN 206) to request a search of the NN's local database for the partner LU location. The NN 206 searches its database for local resources and resources within its domain and, if the information is present, the route to the partner LU is calculated and conveyed to EN 202 via a directed locate message exchange through the network 200. Thereafter, a "set-up" or BIND message is forwarded over the route to initiate the session. The BIND includes information pertaining to the partner LU requested for the session.
If the partner LU location is not present in the NN database, the NN 206 accesses a central directory server (CDS) 250 of the APPN network, if one exists. If the CDS does not exist, a broadcast search is performed whereby the NN transmits a broadcast locate command that is flooded among all network nodes in the entire APPN network. After forwarding the broadcast locate command onto the other NNs, each NN issues a broadcast locate within its own domain.
CDS 250 provides centralized registration and search functions of all resources in an APPN network 200. To that end, CDS generally accepts resource registration from and provides directory services to all network nodes in the network. A typical CDS database implementation resides on a mainframe 260 of the APPN network. Searching operations directed to the CDS database generally consume significant resources (e.g., processor cycles) of the mainframe which, in turn, hinder execution of "mission critical" applications running on the mainframe. Accordingly, users generally prefer issuing broadcast locate operations in lieu of CDS searches. However, broadcast searches generally consume network bandwidth, thereby adversely impacting performance of the network. Such broadcast searches should be reduced to improve network bandwidth and the present invention is directed to alleviating this bandwidth problem.